3000 T2$ = "": FOR J = 1 TO N: GET T1$: IF T1$ = CHR$(27) AND K = 2 AND EX < >1 THEN E$(SN) = LEFT$(E2$,17) +"XX2": POP : HOME : RETURN
3035 IF T1$ = CHR$(27) AND K = 1 AND EX < >1 THEN E$(SN) = "XX1": POP : GOTO 3460
3037 IF T1$ = CHR$(27) AND EX = 1 THEN T2$ = " ": RETURN
3040 IF ASC(T1$) = 13 THEN T2$ = CHR$(13): RETURN
3050 IF ASC(T1$) <48 OR ASC(T1$) >57 THEN T2$ = "X": RETURN
3055 PRINT T1$;
3060 T2$ = T2$ +T1$: NEXT : RETURN
3080 E2$ = "":EX = 0: FOR K = 1 TO 2: IF AC$ = "" THEN AC$ = "205"
3102 VTAB (T -2): HTAB T2: PRINT " ";: CALL 64668: IF K = 2 THEN VTAB T: HTAB 1: PRINT " ";: CALL 64668: PRINT "SECOND NUMBER ? (Y/N) ";: GET Z$: IF Z$ = CHR$(27) THEN E$(SN) = LEFT$(E2$,17) +"XX2": HOME : RETURN
3103 IF K = 1 AND T < >14 THEN VTAB T: HTAB 1: PRINT "IS THERE A TELEPHONE NUMBER ? (Y/N) ";: GET Z$: VTAB T: PRINT " ";: CALL 64668: PRINT : IF Z$ = CHR$(27) THEN E$(SN) = "XX1": GOTO 3460
3104 IF K = 1 AND Z$ < >"Y" AND Z$ < >"y" AND T < >14 THEN E2$ = "": GOTO 3520
3105 IF K = 2 AND Z$ < >"Y" AND Z$ < >"y" THEN GOTO 3520
3110 VTAB (T -2): HTAB T2: PRINT " ";: CALL 64668: PRINT "TELEPHONE NO. ";K;" :": VTAB T: HTAB 1: PRINT " ";: CALL 64668: PRINT "AREA CODE ";AC$;"? (Y/N) ";: GET Z$: IF Z$ = CHR$(27) AND K = 2 THEN E$(SN) = LEFT$(E2$,17) +"XX2": HOME : RETURN
3140 IF Z$ = CHR$(27) AND K = 1 AND T < >14 THEN E$(SN) = "XX1": GOTO 3460
3150 T3 = 12:T4 = T2 +4:T6 = T2 +8: IF Z$ = "Y" OR Z$ = "y" THEN GOTO 3220
3170 VTAB T: HTAB T3: PRINT " ";: CALL 64668
3180 VTAB T: HTAB T3:N = 3: GOSUB 3000: IF T2$ = "X" THEN GOTO 3180
3260 N = 3: GOSUB 3000: IF T2$ < >"X" THEN GOTO 3300
3280 VTAB T: HTAB T4:N = 3: GOSUB 3000: IF T2$ = "X" THEN GOTO 3280
3300 IF T2$ = CHR$(13) THEN T2$ = ""
3310 IF T2$ = "" THEN GOTO 3330
3320 E$(SN) = E$(SN) +T2$ +"-"
3330 VTAB T: HTAB T2: PRINT E$(SN);
3340 N = 4: GOSUB 3000: IF T2$ = CHR$(13) THEN T2$ = ""
3360 IF T2$ < >"X" THEN GOTO 3390
3370 VTAB T: HTAB T6:N = 4: GOSUB 3000: IF T2$ = "X" THEN GOTO 3370
3390 E$(SN) = E$(SN) +T2$: IF ET = 2 THEN T2$ = " ": GOTO 3445
3400 VTAB T: HTAB T2: PRINT "EXT. NO. ? (Y/N) ";: GET Z$: IF Z$ = CHR$(27) THEN T2$ = " ": GOTO 3445
3420 IF Z$ < >"Y" AND Z$ < >"y" THEN GOTO 3460
3430 VTAB T: HTAB T2 +11: CALL 64668:N = 4:EX = 1: GOSUB 3000:EX = 0: IF T2$ = "X" THEN GOTO 3430
3445 IF LEN(E$(SN)) <12 THEN FOR L = LEN(E$(SN)) +1 TO 12:E$(SN) = E$(SN) +" ": NEXT L
3450 E$(SN) = E$(SN) +T2$
3460 IF LEN(E$(SN)) = 17 THEN GOTO 3500
3470 FOR L = LEN(E$(SN)) +1 TO 17:E$(SN) = E$(SN) +" ": NEXT L
3500 E2$ = E2$ +E$(SN): PRINT : NEXT K
3520 E$(SN) = E2$: RETURN
4000 VTAB 1: PRINT "ESC TO QUIT": VTAB 10: VTAB 8: PRINT "ENTER NAME TO FIND": VTAB 13: PRINT "______________________________________":X = 0:Y2 = 14:DX = 39:DY = 10: & X,Y2,DX,DY
4050 HOME : PRINT "FIRST NAME : ": PRINT : GOSUB 600:T2$ = SX$: IF SX$ = CHR$(27) THEN CV = 27: TEXT : RETURN
4070 HOME : PRINT "LAST NAME : ": PRINT : GOSUB 600:T1$ = SX$: IF SX$ = CHR$(27) THEN CV = 27: GOTO 4050
4073 HOME : PRINT "SEARCHING FILE": IF NP = 0 THEN GOTO 4320
4080 F5 = 0: FOR J = 1 TO NP: IF T1$ = "" THEN GOTO 4170
4090 IF LEFT$(T1$,3) = LEFT$(SA$(J),3) THEN F5 = F5 +1:F(F5) = J
4100 NEXT J
4110 IF F5 = 0 THEN T1$ = "": GOTO 4170
4120 F6 = 0: FOR J = 1 TO F5: FOR K = 1 TO LEN(SB$(F(J))): IF T2$ = "" THEN GOTO 4220
4130 IF LEFT$(T2$,3) = MID$ (SB$(F(J)),K,3) THEN F6 = F6 +1:A(F6) = F(J): GOTO 4150
4140 NEXT K
4150 NEXT J
4155 IF F6 = 0 THEN GOTO 4220
4160 GOTO 4230
4170 F6 = 0: FOR J = 1 TO NP: FOR K = 1 TO LEN(SB$(J)): IF LEFT$(T2$,3) = MID$ (SB$(J),K,3) THEN F6 = F6 +1:A(F6) = J: GOTO 4200
4180 FOR J = 1 TO NP: FOR K = 1 TO LEN(SB$(J)): IF LEFT$(T2$,3) = MID$ (SB$(J),K,3) THEN F6 = F6 +1:A(F6) = J: GOTO 4200
4190 NEXT K
4200 NEXT J
4210 GOTO 4230
4220 F6 = F5: FOR J = 1 TO F5:A(J) = F(J): NEXT
4230 HOME : IF F6 = 0 THEN GOTO 4320
4240 IF F6 = 1 THEN F6 = A(F6): HOME :Y = F6: TEXT : RETURN
4245 A = 2:M = 9:HT = 5:VS = 0: FOR J = 0 TO F6 STEP 8: FOR K = 1 TO 8: IF J +K >F6 THEN GOTO 4260
4252 T1 = LEN(SA$(A(J +K))):T2 = 30 -1 -T1: IF T2 > LEN(SB$(A(J +K))) THEN T2 = LEN(SB$(A(J +K)))
4254 IF T2 = 0 THEN T2 = 1
4258 PM$(9,K) = LEFT$(SB$(A(J +K)),T2) +" " +SA$(A(J +K)): NEXT K
4260 MN(9) = K -1: IF F6 >8 THEN MN(9) = K:PM$(M,K) = "* SEE MORE NAMES *"
4262 IF F6 >8 AND K = 1 THEN GOTO 4280
4264 HOME :VS = 0: TEXT :JS = J: GOSUB 6000:J = JS: IF CV = 27 THEN TEXT : HOME : RETURN
4270 IF CV <MN(9) THEN CV = CV +J: GOTO 4300
4275 IF F6 <9 AND CV <MN(9) +1 THEN CV = CV +J: GOTO 4300
4280 NEXT J: GOTO 4245
4300 F6 = CV: TEXT :F6 = A(F6): HOME :Y = F6: RETURN
4320 TEXT : HOME : VTAB 10: HTAB 8: PRINT "THIS NAME WAS NOT FOUND": PRINT : HTAB 8: PRINT "IN ";WA$: PRINT :F6 = 0: HTAB 8: PRINT "PRESS A KEY TO CONTINUE ";: GET Z$: RETURN
5000 HOME :T = 14:T2 = 2:SN = NP +1:ET = 2: GOSUB 3080:ET = 0: IF E$(SN) = CHR$(27) THEN RETURN
5025 IF NP = 0 THEN GOTO 5080
5030 F6 = 0: HOME : HTAB 15: VTAB 10: PRINT "SEARCHING": FOR J = 1 TO NP: IF LEFT$(E$(J),12) = "" OR LEFT$(E$(J),12) = " " THEN GOTO 5052
5050 IF LEFT$(E$(J),12) = LEFT$(E$(SN),12) THEN F6 = F6 +1:A(F6) = J: GOTO 5060
5052 IF MID$ (E$(J),18,12) = "" OR MID$ (E$(J),18,12) = " " THEN GOTO 5056
5055 IF MID$ (E$(J),18,12) = MID$ (E$(SN),18,12) THEN F6 = F6 +1:A(F6) = J: GOTO 5060
5056 IF LEFT$(E$(J),12) = "" OR LEFT$(E$(J),12) = " " THEN GOTO 5058
5057 IF LEFT$(E$(J),12) = MID$ (E$(SN),18,12) THEN F6 = F6 +1:A(F6) = J: GOTO 5060
5058 IF MID$ (E$(J),18,12) = "" OR MID$ (E$(J),18,12) = " " THEN GOTO 5060
5059 IF MID$ (E$(J),18,12) = LEFT$(E$(SN),12) THEN F6 = F6 +1:A(F6) = J
5060 NEXT J
5070 IF F6 >0 THEN GOTO 5100
5080 HOME : VTAB 10: HTAB 8: PRINT " THIS NUMBER WAS NOT FOUND ": PRINT : HTAB 8: PRINT " IN ";WA$: GET Z$: RETURN
5100 IF F6 = 1 THEN GOTO 5150
5104 M = 10:A = 2:HT = 4:VS = 0: FOR J = 0 TO F6 STEP 8: FOR K = 1 TO 8: IF J +K >F6 THEN GOTO 5116
5112 T1 = LEN(SA$(A(J +K))):T2 = 29 -T1: IF T2 > LEN(SB$(A(J +K))) THEN T2 = LEN(SB$(A(J +K)))
5113 IF T2 < = 0 THEN T2 = 1
5114 PM$(10,K) = LEFT$(SB$(A(J +K)),T2) +" " +SA$(A(J +K)): NEXT K
5116 MN(10) = K -1: IF F6 >8 THEN MN(10) = K:PM$(10,K) = "* SEE MORE NAMES *"
5118 IF F6 >8 AND K = 1 THEN GOTO 5130
5120 HOME :VS = 0:JS = J: GOSUB 6000:J = JS: IF CV = 27 THEN E$(SN) = CHR$(27): RETURN
5126 IF CV <MN(10) THEN CV = CV +J:F6 = CV: GOTO 5150
5128 IF F6 <9 AND CV <MN(10) +1 THEN CV = CV +J:F6 = CV: GOTO 5150
5130 NEXT J: GOTO 5104
5150 F6 = A(F6): HOME :E$(SN) = "": RETURN
6000 GOTO 6200
6100 PRINT CHR$(24): INVERSE :T = CV -VS: IF A >1 THEN GOSUB 6160: RETURN
6110 GOSUB 6170: RETURN
6130 HTAB HT -3: VTAB CV: PRINT " ";:T = CV -VS: IF A >1 THEN GOSUB 6160: RETURN
6140 GOSUB 6170: RETURN
6160 HTAB HT: VTAB VS +T: PRINT "(";T +1;")";" ";PM$(M,T +1);: NORMAL : CALL 64668: RETURN
6170 HTAB HT: VTAB VS +T: PRINT "("; LEFT$(PM$(M,T +1),A);")";" ";PM$(M,T +1);: NORMAL : CALL 64668: RETURN
6200 IF M = 0 THEN HOME : PRINT "COPYRIGHT 1987 - JUDY LONG": PRINT "SERIAL NO. 00006"
6210 IF VS < >0 THEN HTAB 1: VTAB 1: PRINT MS$(M): GOTO 6240
12003 IF NP = 100 THEN HOME : VTAB 10: PRINT "THIS FILE IS TOO LARGE TO CONTINUE.": PRINT : HTAB 7: PRINT "PLEASE SAVE TO DISK": HTAB 7: PRINT "AND START A NEW FILE. ";: GET Z$: GOTO 32000
12022 IF X$ = CHR$(27) THEN NP = NP -1: TEXT : HOME : GOTO 32000
12025 NEXT CV: GOSUB 7470
12030 HOME : HTAB 2: VTAB 23: PRINT "DO YOU WISH TO CHANGE ANYTHING ? ";: GET Z$: IF Z$ < >"Y" AND Z$ < >"y" THEN TEXT : GOTO 12000
12040 TEXT : HOME : GOSUB 7000: GOTO 12000
13000 IF NP < = 1 AND A$(1) = "" AND B$(1) = "" AND C$(1) = "" AND CC$(1) = "" AND E$(1) = "" THEN HOME : VTAB 10: HTAB 10: PRINT "NO DATA IN MEMORY ": HTAB 10: PRINT "PRESS A KEY ";: GET Z$: GOTO 32000
13010 HOME :M = 3:A = 1:HT = 10:VS = 0: GOSUB 6000: IF CV = 27 THEN GOTO 32000
13020 ON CV GOTO 13030,13070,13110
13030 HOME : GOSUB 4000: IF CV = 27 THEN GOTO 13000
13050 Y = F6: IF Y = 0 THEN GOTO 13000
13060 M = 1:A = 1:HT = 5:HB = 10: GOSUB 7000: TEXT : HOME : GOTO 13000
13070 HOME : GOSUB 5000: IF E$(SN) = CHR$(27) THEN E$(SN) = "": GOTO 13000
13090 E$(SN) = "": GOTO 13050
13110 HOME : GOSUB 8000: IF CV = 27 THEN J% = 0: GOTO 13000
13115 IF NP <1 THEN GET Z$: GOTO 32000
13120 HOME :M = 1:A = 1:HT = 5:HB = 10: GOSUB 7000: TEXT : HOME : GOTO 13110
14000 IF NP < = 1 AND A$(1) = "" AND B$(1) = "" AND C$(1) = "" AND CC$(1) = "" AND E$(1) = "" THEN HOME : VTAB 10: HTAB 10: PRINT "NO DATA IN MEMORY ": HTAB 10: PRINT "PRESS A KEY ";: GET Z$: GOTO 32000
14010 HOME : HTAB 1: VTAB 1: PRINT "ESC TO STOP - SPACE TO CONTINUE": PRINT : FOR J = 1 TO NP:T1 = LEN(A$(J)):T2 = 36 -T1: IF T2 > LEN(B$(J)) THEN T2 = LEN(B$(J))
14017 IF T2 = 0 THEN T2 = 1
14020 PRINT J: PRINT A$(J);" "; LEFT$(B$(J),T2): PRINT C$(J): PRINT CC$(J): PRINT LEFT$(E$(J),12);: IF MID$ (E$(J),13,5) = "" OR MID$ (E$(J),13,5) = " " THEN PRINT : GOTO 14034
14033 PRINT " EXT.NO. "; MID$ (E$(J),13,5)
14034 PRINT MID$ (E$(J),18,12);: IF MID$ (E$(J),30,5) = "" OR MID$ (E$(J),30,5) = " " THEN PRINT : GOTO 14036
14035 PRINT " EXT.NO. "; MID$ (E$(J),30,5)
14036 PRINT : IF J/3 = INT(J/3) THEN GET Z$: HOME : HTAB 1: VTAB 1: PRINT "ESC TO STOP - SPACE TO CONTINUE": PRINT : IF Z$ = CHR$(27) THEN HOME : GOTO 32000
14050 NEXT J
14060 PRINT : PRINT " HIT ANY KEY TO CONTINUE": GET Z$: GOTO 32000
15000 IF NP < = 1 AND A$(1) = "" AND B$(1) = "" AND C$(1) = "" AND CC$(1) = "" AND E$(1) = "" THEN HOME : VTAB 10: HTAB 10: PRINT "NO DATA IN MEMORY ": HTAB 10: PRINT "PRESS A KEY ";: GET Z$: GOTO 32000
15010 HOME
15020 PRINT CHR$(4);"CHAIN ADD.FILE,@15000"
16000 IF NP < = 1 AND A$(1) = "" AND B$(1) = "" AND C$(1) = "" AND CC$(1) = "" AND E$(1) = "" THEN HOME : VTAB 10: HTAB 10: PRINT "NO DATA IN MEMORY ": HTAB 10: PRINT "PRESS A KEY ";: GET Z$: GOTO 32000
16010 HOME
16020 PRINT D$;"CHAIN ADD.PRT,@16000"
22000 IF NP < = 1 AND A$(1) = "" AND B$(1) = "" AND C$(1) = "" AND CC$(1) = "" AND E$(1) = "" THEN HOME : VTAB 10: HTAB 10: PRINT "NO DATA IN MEMORY ": HTAB 10: PRINT "PRESS A KEY ";: GET Z$: GOTO 32000
22010 M = 3:A = 1:HT = 10:VS = 0: GOSUB 6000: IF CV = 27 THEN GOTO 32000
22020 ON CV GOTO 22030,22070,22120
22030 HOME : GOSUB 4000: IF F6 = 0 THEN GOTO 22000
22040 IF CV = 27 THEN GOTO 22000
22050 GOSUB 700: GOTO 23000
22070 HOME : GOSUB 5000: IF E$(SN) = CHR$(27) THEN E$(SN) = "": GOTO 22000
22080 IF E$(SN) = CHR$(27) THEN E$(SN) = "": GOTO 22000
22090 E$(SN) = "": IF F6 = 0 THEN GOTO 22000
22110 Y = F6: GOSUB 700: GOTO 23000
22120 HOME : GOSUB 8000: IF CV = 27 THEN J% = 0: GOTO 22000
22125 IF NP <1 THEN GET Z$: GOTO 32000
22130 HOME : GOSUB 700:
23000 IF NP < = 1 AND A$(1) = "" AND B$(1) = "" AND C$(1) = "" AND CC$(1) = "" AND E$(1) = "" THEN HOME : VTAB 10: HTAB 10: PRINT "NO DATA IN MEMORY ": HTAB 10: PRINT "PRESS A KEY ";: GET Z$: GOTO 32000
23010 VS = 16:M = 4:A = 1: GOSUB 6000: IF CV = 27 THEN GOTO 22000
23060 ON CV GOTO 23070,23100,23065
23065 M = 1:A = 1:HT = 5:HB = 10: GOSUB 7000: TEXT : HOME : IF CV = 27 THEN GOSUB 700: GOTO 23000
24010 HOME : VTAB 10: HTAB 8: PRINT "YOU MUST SAVE YOUR CURRENT ": HTAB 8: PRINT "DATA BEFORE CONTINUING": PRINT : HTAB 8: PRINT "PRESS ESC IF YOU DO NOT": HTAB 8: PRINT "CARE TO SAVE YOUR DATA": HTAB 8: PRINT "(IT WILL BE LOST) ";: GET Z$
24020 IF Z$ = CHR$(27) THEN GOTO 24400
24030 GOTO 15000
24400 TM% = RM%:RM% = 0
24402 HOME
24403 RM% = TM%
24405 PRINT CHR$(4);"PREFIX ";PR$
24410 PRINT CHR$(4);"RUN ";PR$;"ADD.HELP"
24500 GOTO 32000
25000 HOME
25010 PRINT CHR$(4),"CHAIN ADD.INIT,@25000"
32000 A = 1:M = 0:HT = 10:VS = 0: GOSUB 6000: FOR J = 1 TO 11:G(J) = 0: NEXT
32230 ON CV GOTO 11000,12000,13000,22000,14000,16000,100,15000,10000,25000,24000,33000
32240 GOTO 32000
33000 HOME : VTAB 10: HTAB 8: PRINT " DO YOU WISH TO EXIT ? ";: GET Z$: IF Z$ = "Y" OR Z$ = "y" THEN GOTO 33040
33020 GOTO 32000
33040 IF NP% = 0 THEN GOTO 33290
33050 HOME : VTAB 10: HTAB 8: PRINT " YOUR DATA HAS BEEN ALTERED ": HTAB 8: PRINT " SINCE YOU SAVED TO DISK": PRINT : HTAB 8: PRINT " DO YOU WISH TO SAVE YOUR ": HTAB 8: PRINT " PRESENT DATA TO DISK ? ";: GET Z$